home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / UTILS / C--C0202.ZIP / STAKPROC.DOC < prev    next >
Encoding:
Text File  |  1993-04-17  |  22.3 KB  |  580 lines

  1.  
  2. LIST OF BUILT IN C-- STACK PROCEDURES
  3. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  4. Last Updated:  16 April 1993
  5.  
  6.  
  7. CALLING FORMAT:  addpixel19(x,y,colour);
  8.           x = x coordinate to ADD pixel (0 to 319).
  9.           y = y coordinate to ADD pixel (0 to 199).
  10.           colour = colour to ADD pixel.
  11. SIZE:  32 bytes.
  12. FUNCTION:  ADDs a pixel on the screen at the desired point with the desired
  13.        colour in video mode 19 (320x200 in 256 colours).
  14. RETURNS:  nothing.
  15.  
  16.  
  17. CALLING FORMAT:  andpixel19(x,y,colour);
  18.           x = x coordinate to and pixel (0 to 319).
  19.                y = y coordinate to and pixel (0 to 199).
  20.           colour = colour to and pixel.
  21. SIZE:  32 bytes.
  22. FUNCTION:  ANDs a pixel on the screen at the desired point with the desired
  23.        colour in video mode 19 (320x200 in 256 colours).
  24. RETURNS:  nothing.
  25.  
  26.  
  27. CALLING FORMAT:  appendfile(filename,bufseg,bufoff,bytes);
  28.           filename = offset address of name of file to append.
  29.           bufseg = segment address of buffer to write from.
  30.           bufoff = offset address of buffer to write from.
  31.           bytes = number of bytes to append.
  32. DOS REQUIRED:  2.0 +
  33. SIZE:  77 bytes.
  34. FUNCTION:  Opens the file name specified, appends the specified number of
  35.            bytes from the buffer to the end of the file and then closes the
  36.            file.
  37. RETURN TYPE:  word
  38. RETURNS:  number of bytes appended.
  39.  
  40.  
  41. CALLING FORMAT:  bar19(x,y,xsize,ysize,colour);
  42.           x = x coordinate of upper left corner (0 to 319).
  43.           y = y coordinate of upper left corner (0 to 199).
  44.           xsize = x length of bar.
  45.           ysize = y length of bar.
  46.           colour = colour for bar.
  47. SIZE:  51 bytes.
  48. FUNCTION:  Draws a bar (filled rectangle) with x and y coordinates and x and
  49.        y size on the screen with the desired colour in video mode 19
  50.        (320x200 256 colours).
  51. RETURNS:  nothing.
  52. NOTE:  DI and SI are destroyed.
  53.  
  54.  
  55. CALLING FORMAT:  box19(x,y,xsize,ysize,colour);
  56.           x = x coordinate of upper left corner (0 to 319).
  57.           y = y coordinate of upper left corner (0 to 199).
  58.           xsize = x length of box.
  59.           ysize = y length of box.
  60.           colour = colour for box.
  61. SIZE:  77 bytes.
  62. FUNCTION:  Draws a box (rectangle) with x and y coordinates and x and y size
  63.        on the screen with the desired colour in video mode 19 (320x200
  64.        256 colours).
  65. RETURNS:  nothing.
  66. NOTE:  DI and SI are destroyed.
  67.  
  68.  
  69. CALLING FORMAT:  getimage19(x,y,xsize,ysize,imagebuf_seg,imagebuf_offset);
  70.           x = x coordinate to put image (0 to 319).
  71.           y = y coordinate to put image (0 to 199).
  72.                   xsize = X size of image in pixels.  
  73.                   ysize = Y size of image in pixels.  
  74.           imagebuf_seg = segment address of image buffer.
  75.           imagebuf_offset = offset address of image buffer.
  76. SIZE:  56 bytes.
  77. FUNCTION:  Gets an image from the screen in video mode 19 (320x200 in 256
  78.            colours).  Format of the image buffer is first word is x size,
  79.            second word is y size and the rest is the picture in pixel values.
  80.            Size of the buffer required is xsize*ysize+4 bytes in length to 
  81.            hold the image.  The image gotten with this procedure may be put
  82.            on the screen with procedure putimage19.
  83. RETURNS:  nothing.
  84. NOTE:  DI and SI are destroyed.
  85.  
  86.  
  87. CALLING FORMAT:  getpixel19(x,y);
  88.           x = x coordinate of pixel to get colour (0 to 319).
  89.           y = y coordinate of pixel to get colour (0 to 199).
  90. SIZE:  28 bytes.
  91. FUNCTION:  Returns the colour of a pixel on the screen at the specified
  92.        point in video mode 19 (320x200 in 256 colours).
  93. RETURN TYPE:  byte.
  94. RETURNS:  colour of the pixel.
  95.  
  96.  
  97. CALLING FORMAT:  line19(x1,y1,x2,y2,colour);
  98.           x1 = x starting coordinate of the line (0 to 319).
  99.           y1 = y starting coordinate of the line (0 to 199).
  100.           x2 = x ending coordinate of the line (0 to 319).
  101.           y2 = y ending coordinate of the line (0 to 199).
  102.                   colour = desired colour of line (0 to 255).
  103. SIZE:  154 bytes.
  104. FUNCTION:  Draws a line from (x1,y1) to (x2,y2) with the specified colour in
  105.            video mode 19 (320x200 in 256 colours).
  106. RETURNS:  nothing.
  107. NOTE:  DI and SI are destroyed.
  108.  
  109.  
  110. CALLING FORMAT:  negpixel19(x,y);
  111.           x = x coordinate of pixel to NEGATE (0 to 319).
  112.           y = y coordinate of pixel to NEGATE (0 to 199).
  113. SIZE:  28 bytes.
  114. FUNCTION:  NEGATEs a pixel on the screen at the desired point in video mode
  115.        19 (320x200 in 256 colours).
  116. RETURNS:  nothing.
  117.  
  118.  
  119. CALLING FORMAT:  notbar19(x,y,xsize,ysize);
  120.           x = x coordinate of upper left corner (0 to 319).
  121.           y = y coordinate of upper left corner (0 to 199).
  122.           xsize = x length of bar.
  123.           ysize = y length of bar.
  124. SIZE:  48 bytes.
  125. FUNCTION:  NOTs a bar (filled rectangle) with x and y coordinates and x and y
  126.            size on the screen in video mode 19 (320x200-256 colours).
  127. RETURNS:  nothing.
  128. NOTE:  DI and SI are destroyed.
  129.  
  130.  
  131. CALLING FORMAT:  notbox19(x,y,xsize,ysize);
  132.           x = x coordinate of upper left corner (0 to 319).
  133.           y = y coordinate of upper left corner (0 to 199).
  134.           xsize = x length of box.
  135.           ysize = y length of box.
  136. SIZE:  78 bytes.
  137. FUNCTION:  NOTs a box (rectangle) with x and y coordinates and x and y size
  138.            on the screen in video mode 19 (320x200-256 colours).
  139. RETURNS:  nothing.
  140. NOTE:  DI and SI are destroyed.
  141.  
  142.  
  143. CALLING FORMAT:  notpixel19(x,y);
  144.           x = x coordinate of pixel to NOT (0 to 319).
  145.           y = y coordinate of pixel to NOT (0 to 199).
  146. SIZE:  28 bytes.
  147. FUNCTION:  NOTs a pixel on the screen at the desired point in video mode 19
  148.        (320x200 in 256 colours).
  149. RETURNS:  nothing.
  150.  
  151.  
  152. CALLING FORMAT:  orpixel19(x,y,colour);
  153.           x = x coordinate to OR pixel (0 to 319).
  154.           y = y coordinate to OR pixel (0 to 199).
  155.           colour = colour to OR pixel.
  156. SIZE:  32 bytes.
  157. FUNCTION:  ORs a pixel on the screen at the desired point with the desired
  158.        colour in video mode 19 (320x200 in 256 colours).
  159. RETURNS:  nothing.
  160.  
  161.  
  162. CALLING FORMAT:  overimage19(x,y,imageloc,clearcolour);
  163.           x = x coordinate to put image (0 to 319).
  164.           y = y coordinate to put image (0 to 199).
  165.           imageloc = location of image buffer.
  166.                   clearcolour = colour value which is not transfered.
  167. SIZE:  63 bytes.
  168. FUNCTION:  Puts an image and an x,y location from an image buffer in video
  169.        mode 19 (320x200 in 256 colours).  Format of the image buffer is
  170.        first word is x size, second word is y size and the rest is the
  171.        picture in pixel values.  Any pixel values equal to clearcolour
  172.            will not be copied, thus allowing for the definition of non-
  173.            rectangular shapes.
  174. RETURNS:  nothing.
  175. NOTE:  DI and SI are destroyed.
  176.  
  177.  
  178. CALLING FORMAT:  passtr(cstringoffset,passtringoffset);
  179.           cstringoffset = offset address of C type string.
  180.           passtringoffset = offset address of Pascal type string.
  181. SIZE:  24 or 22 bytes.
  182. FUNCTION:  Copies a Pascal type string to a C type string.  A Pascal type 
  183.            string is a string whos first byte specifies the length of the
  184.            string.  A C type string is a string which is terminated with
  185.            the byte value zero.
  186. RETURN TYPE:  word 
  187. RETURNS:  the length of the new string generated not including the
  188.           terminating zero byte.
  189. NOTE:  DI and SI are destroyed.
  190.  
  191.  
  192. CALLING FORMAT:  putimage19(x,y,imageloc);
  193.           x = x coordinate to put image (0 to 319).
  194.           y = y coordinate to put image (0 to 199).
  195.           imageloc = location of image buffer.
  196. SIZE:  47 bytes.
  197. FUNCTION:  Puts an image and an x,y location from an image buffer in video
  198.        mode 19 (320x200 in 256 colours).  Format of the image buffer is
  199.        first word is x size, second word is y size and the rest is the
  200.        picture in pixel values.
  201. RETURNS:  nothing.
  202. NOTE:  DI and SI are destroyed.
  203.  
  204.  
  205. CALLING FORMAT:  putpixel19(x,y,colour);
  206.            x = x coordinate to put pixel (0 to 319).
  207.           y = y coordinate to put pixel (0 to 199).
  208.           colour = colour to put pixel.
  209. SIZE:  32 bytes.
  210. FUNCTION:  Puts a pixel on the screen at the desired point in the desired
  211.        colour in video mode 19 (320x200 in 256 colours).
  212. RETURNS:  nothing.
  213.  
  214.  
  215. CALLING FORMAT:  rand();
  216. SIZE:  61 bytes.
  217. FUNCTION:  Returns a random number with the range of a word variable.
  218. RETURN TYPE:  word, int, byte or char (valid random number for all).
  219. RETURNS:  the random number generated.
  220. NOTE:  BX also equals the random number generated.
  221.  
  222.  
  223. CALLING FORMAT:  randomize();
  224. SIZE:  21 bytes.
  225. FUNCTION:  Seeds the random number generator with the current system tick
  226.        counter value.
  227. RETURNS:  nothing.
  228.  
  229.  
  230. CALLING FORMAT:  readfile(filename,bufseg,bufoff,bytes);
  231.           filename = offset address of name of file to read from.
  232.           bufseg = segment address of buffer to read into.
  233.           bufoff = offset address of buffer to read into.
  234.           bytes = number of bytes to read.
  235. DOS REQUIRED:  2.0 +
  236. SIZE:  58 bytes.
  237. FUNCTION:  Opens the file name specified, reads the number bytes into the
  238.        buffer and then closes the file.
  239. RETURN TYPE:  word
  240. RETURNS:  number of bytes read.
  241.  
  242.  
  243. CALLING FORMAT:  spawn(filename,parameters,environment);
  244.           filename = offset address of name of file to be spawned.
  245.           parameters = offset address command line parameters,
  246.                                the parameter string starts with a length
  247.                                byte and ends with a carrage return (ASCII
  248.                                value of 13).  The lenght byte does not
  249.                                include itself or the terminator.
  250.           environment = segment address of environmental variable
  251.                                 table.  Each entry in the table will be a 
  252.                                 0 terminating string of the format:
  253.                                    FUNDOS=C:\FUN
  254.                                 The entire table is terminated with an extra
  255.                                 NULL character (ASCII value 0).
  256.                                 If the segment address is 0, the spawned 
  257.                                 program will inherit the envronment block of
  258.                                 the parent program.
  259. DOS REQUIRED:  3.0 +
  260. SIZE:  49 bytes.
  261. FUNCTION:  Spawns the specified filename and gives it the given parameters
  262.            and environment block.
  263. RETURN TYPE:  word
  264. RETURNS:  ES,BX,DX = undefined
  265.           Successful:    AX = 0
  266.           Unsuccessful:  AX = errorcode
  267. NOTE:  When COM files are loaded, they are given all of the memory of the
  268.        largest block available.  In order to have memory to spawn a program,
  269.        the COM file must reduce its memory size by using RESIZEMEM, or 
  270.        ensuring that the resize compiler option is ON, to free some for the
  271.        spawned program to be loaded into.
  272.  
  273.  
  274. CALLING FORMAT:  srand(seedword1,seedword2);
  275.           seedword1 = first word for the random number seed.
  276.           seedword2 = second word for the random number seed.
  277. SIZE:  23 bytes.
  278. FUNCTION:  Seeds the random number generator.  The random number generator
  279.        uses a double word seed value for generating the random numbers.
  280. RETURNS:  nothing.
  281.  
  282.  
  283. CALLING FORMAT:  strcat(deststrffset,sourcestroffset);
  284.           deststroffset = offset address of destination string.
  285.           sourcestroffset = offset address of source string.
  286. SIZE:  24 or 22 bytes.
  287. FUNCTION:  Copies the source string on to the end of the destination 
  288.            string.
  289. RETURNS:  nothing.
  290. NOTE:  DI and SI are destroyed.
  291.  
  292.  
  293. CALLING FORMAT:  STRLEN(stroffset);
  294.           stroffset = memory location of string
  295. SIZE:  17 bytes.
  296. FUNCTION:  Calculates the length of the string which is terminated by the
  297.            byte value of zero.
  298. RETURN TYPE:  word
  299. RETURNS:  length of string in bytes excluding terminating byte
  300. NOTE:  BX also equals the length of string.
  301.           
  302.  
  303. CALLING FORMAT:  strpas(passtringoffset,cstringoffset);
  304.           passtringoffset = offset address of Pascal type string.
  305.           cstringoffset = offset address of C type string.
  306. SIZE:  25 or 23 bytes.
  307. FUNCTION:  Copies a C type string to a Pascal type string.  A Pascal type 
  308.            string is a string whos first byte specifies the length of the
  309.            string.  A C type string is a string which is terminated with
  310.            the byte value zero.
  311. RETURNS:  nothing.
  312. NOTE:  DI and SI are destroyed.
  313.  
  314.  
  315. CALLING FORMAT:  subpixel19(x,y,colour);
  316.           x = x coordinate to subtract pixel (0 to 319).
  317.           y = y coordinate to subtract pixel (0 to 199).
  318.           colour = colour to subtract pixel.
  319. SIZE:  32 bytes.
  320. FUNCTION:  Subtracts a pixel on the screen at the desired point with the
  321.        desired colour in video mode 19 (320x200 in 256 colours).
  322. RETURNS:  nothing.
  323.  
  324.  
  325. CALLING FORMAT:  writefile(filename,bufseg,bufoff,bytes);
  326.           filename = offset address of name of file write to.
  327.             bufseg = segment address of buffer to write from.
  328.           bufoff = offset address of buffer to write from.
  329.           bytes = number of bytes to write.
  330. DOS REQUIRED:  2.0 +
  331. SIZE:  59 bytes.
  332. FUNCTION:  Creates the file with the name name specified, writes the number
  333.        bytes from the buffer into the file and then closes the file.
  334.        If the file already exists, the contents will be lost.
  335. RETURN TYPE:  word
  336. RETURNS:  number of bytes written.
  337.  
  338.  
  339. CALLING FORMAT:  XMSallocateEMB(sizeinK);
  340.                   sizeinK = amount in K of extended memory being requested.
  341. SIZE:  11 bytes.
  342. FUNCTION:  Allocates an extended memory block of specfied size.
  343.            See XMSgetversion().
  344. RETURN TYPE:  word
  345. RETURNS:  1 if the block is allocated, else 0.
  346.           DX = extended memory block (EMB) handle.
  347.  
  348.  
  349. CALLING FORMAT:  XMSfreeEMB(EMBhandle);
  350.                   EMBhandle = Extended memory block handle to free.
  351. SIZE:  11 bytes.
  352. FUNCTION:  Frees an extended memory block that was previously allocated with
  353.            XMSallocateEMB().  See XMSgetversion().
  354. RETURN TYPE:  word
  355. RETURNS:  1 if the block is freed, else 0.
  356.  
  357.  
  358. CALLING FORMAT:  XMSgetEMBinfo(EMBhandle);
  359.                   EMBhandle = Extended memory block handle.
  360. SIZE:  11 bytes.
  361. FUNCTION:  Returns additional information about an extended memory block.
  362.            See XMSgetversion().
  363. RETURN TYPE:  word
  364. RETURNS:  1 if block information is found, else 0.
  365.           BL = number of free EMB handles in the system
  366.           BH = the blocks lock count
  367.           DX = the block's length in K
  368.  
  369.  
  370. CALLING FORMAT:  XMSgetversion();
  371. SIZE:  39 bytes.
  372. FUNCTION:  Returns the version of the XMS driver in the current system, or
  373.            returns 0 if no XMS driver exists.  THIS PROCEDURE MUST BE CALLED
  374.            AND RETURN A VALUE OF 0x200 OR GREATER MUST BE CONFIRMED BEFORE
  375.            ANY OF THE OTHER XMS????????() FUNCTIONS ARE CALLED.  This
  376.            function internally obtains the call address for all of the other
  377.            XMS?????????() functions.
  378. RETURN TYPE:  word
  379. RETURNS:  Version of XMS supported, such as 0x0234 for version 2.34, 0 will
  380.           be returned if no XMS is supported.
  381.           BX = the XMS drivers internal revision number
  382.           DX = 1 if the HMA exists, else 0
  383.  
  384.  
  385. CALLING FORMAT:  XMSglobaldisableA20();
  386. SIZE:  8 bytes.
  387. FUNCTION:  Disables the A20 line.  This procedure should only called by
  388.            programs that control the HMA.  See XMSgetversion().
  389. RETURN TYPE:  word
  390. RETURNS:  1 if the A20 line is disabled, else 0.
  391.  
  392.  
  393. CALLING FORMAT:  XMSglobalenableA20();
  394. SIZE:  8 bytes.
  395. FUNCTION:  Enables the A20 line.  This procedure should only called by
  396.            programs that control the HMA.  XMSglobaldisableA20() should
  397.            be called before a program releases control of the system.
  398.            See XMSgetversion().
  399. RETURN TYPE:  word
  400. RETURNS:  1 if the A20 line is enabled, else 0.
  401.  
  402.  
  403. CALLING FORMAT:  XMSlocaldisableA20();
  404. SIZE:  8 bytes.
  405. FUNCTION:  Cancels a previous call to XMSlocalenableA20.
  406.            See XMSgetversion().
  407. RETURN TYPE:  word
  408. RETURNS:  1 if the A20 line is disabled, else 0.
  409.  
  410.  
  411. CALLING FORMAT:  XMSlocalenableA20();
  412. SIZE:  8 bytes.
  413. FUNCTION:  Enables the A20 line.  XMSlocaldisableA20() should be called
  414.            before a program releases control of the system.
  415.            See XMSgetversion().
  416. RETURN TYPE:  word
  417. RETURNS:  1 if the A20 line is enabled, else 0.
  418.  
  419.  
  420. CALLING FORMAT:  XMSlockEMB(EMBhandle);
  421.                   EMBhandle = Extended memory block handle to lock.
  422. SIZE:  11 bytes.
  423. FUNCTION:  Locks and extended memory block and returns a 32bit address to
  424.            it.  See XMSgetversion().
  425. RETURN TYPE:  word
  426. RETURNS:  1 if the block is locked, else 0.
  427.           DX:BX = 32bit linear address of the locked block.
  428.  
  429.  
  430. CALLING FORMAT:  XMSmoveEMB( destoffsethigh,destoffsetlow,desthandle,
  431.                              sourceoffsethigh,sourceoffsetlow,sourcehandle,
  432.                              lenghthigh,lengthlow);
  433.                   destoffsethigh = high word of offset from start of 
  434.                                    destination EMB.
  435.                   destoffsethigh = low word of offset from start of
  436.                                    destination EMB. 
  437.                   desthandle = Extended memory block handle of destination. 
  438.                   sourceoffsethigh = high word of offset from start of 
  439.                                      source EMB.
  440.                   sourceoffsethigh = low word of offset from start of
  441.                                      source EMB. 
  442.                   sourcehandle = Extended memory block handle of source. 
  443.                   lengthhigh = high word of number of byte to transfer.
  444.                   lengthlow = low word of number of byte to transfer.
  445. SIZE:  25 bytes.
  446. FUNCTION:  Copies a block of data from conventional memory or an extended
  447.            memory block to conventional memory or an extended memory block.
  448.            If desthandle is 0, the destoffsethigh is the segment address of
  449.            the destination and destoffsetlow is the offset address of the
  450.            destination.  The same is true if sourcehandle is 0, thus allowing
  451.            conventional memory (first MEG of memory) to be transfered between
  452.            EMBs.  See XMSgetversion().
  453. RETURN TYPE:  word
  454. RETURNS:  1 if the block is copied successfully, else 0.
  455.  
  456.  
  457. CALLING FORMAT:  XMSqueryA20();
  458. SIZE:  8 bytes.
  459. FUNCTION:  Returns whether or not the A20 line is physically enabled.
  460.            See XMSgetversion().
  461. RETURN TYPE:  word
  462. RETURNS:  1 if the A20 line is enabled, else 0.
  463.  
  464.  
  465. CALLING FORMAT:  XMSqueryfreeEMB();
  466. SIZE:  8 bytes.
  467. FUNCTION:  Returns the size of the largest free extended memory block
  468.            available, and the total amount of free extended memory available.
  469.            See XMSgetversion().
  470. RETURN TYPE:  word
  471. RETURNS:  Size in K of the largest free extended memory block.
  472.           DX = total amount in K of free extended memory.
  473.  
  474.  
  475. CALLING FORMAT:  XMSreallocateEMB(newsize,EMBhandle);
  476.                   newsize = new size desired for EMB in K.
  477.                   EMBhandle = unlocked EMB handle to resize.
  478. SIZE:  12 bytes.
  479. FUNCTION:  Requests a new size for a previously allocated extended memory
  480.            block.  See XMSgetversion().
  481. RETURN TYPE:  word
  482. RETURNS:  1 if block is reallocated, else 0.
  483.  
  484.  
  485. CALLING FORMAT:  XMSreleaseHMA();
  486. SIZE:  8 bytes.
  487. FUNCTION:  Releases the High Memory Area so it can be used by other programs,
  488.            it must first be allocated by XMSrequestHMA().
  489.            See XMSgetversion().
  490. RETURN TYPE:  word
  491. RETURNS:  1 if HMA is released successfully, else 0.
  492.  
  493.  
  494. CALLING FORMAT:  XMSreleaseUMB(segmentofUMB);
  495.                   segmentofUMB = segment address of upper memory block.
  496. SIZE:  11 bytes.
  497. FUNCTION:  Releases ownership of a previously allocated UMB by a call to 
  498.            XMSrequestUMB().  See XMSgetversion().
  499. RETURN TYPE:  word
  500. RETURNS:  1 if the block is released successfully, else 0.
  501.  
  502.  
  503. CALLING FORMAT:  XMSrequestHMA(spaceinbytes);
  504.                   spaceinbytes = number of bytes needed by the caller if
  505.                                  a TSR or device driver, 0xFFFF if an
  506.                                  application program.
  507. SIZE:  11 bytes.
  508. FUNCTION:  Attempts to allocate the 64K-16bytes high memory area.  If you do
  509.            not know what the HMA is or if you do not understand the A20 line
  510.            method of addressing the HMA, then don't bother messing with the 
  511.            HMA.
  512.            See XMSgetversion().
  513. RETURN TYPE:  word
  514. RETURNS:  1 if the HMA is allocated to the program, else 0.
  515.  
  516.  
  517. CALLING FORMAT:  XMSrequestUMB(sizeinparagraphs);
  518.                  sizeinparagraphs = size of requested block in 16 byte units.
  519. SIZE:  11 bytes.
  520. FUNCTION:  Attempts to allocated an upper memory block for use by the
  521.            program.  UMBs are blocks of memory above 640K and below 1024K
  522.            that are not being used by video ram, BIOS or ROM.
  523.            See XMSgetversion().
  524. RETURN TYPE:  word
  525. RETURNS:  1 if the UMB is allocated, else 0.
  526.           BX = segment of UMB.
  527.           DX = if successful: 
  528.                  actual size of the UMB in paragraphs.
  529.                if unsuccessful:
  530.                  size of largest available UMB in paragraphs.
  531.  
  532.  
  533. CALLING FORMAT:  XMSunlockEMB(EMBhandle);
  534.                   EMBhandle = extended memory block handle to unlock.
  535. SIZE:  11 bytes.
  536. FUNCTION:  Unlocks a previously locked extended memory block.
  537.            See XMSgetversion().
  538. RETURN TYPE:  word
  539. RETURNS:  1 if the EMB is unlocked, else 0.
  540.  
  541.  
  542. CALLING FORMAT:  xorbar19(x,y,xsize,ysize,colour);
  543.           x = x coordinate of upper left corner (0 to 319).
  544.           y = y coordinate of upper left corner (0 to 199).
  545.           xsize = x length of bar.
  546.           ysize = y length of bar.
  547.           colour = colour for bar.
  548. SIZE:  55 bytes.
  549. FUNCTION:  XORs a bar (filled rectangle) with x and y coordinates and x and y
  550.            size on the screen with the desired colour in video mode 19
  551.            (320x200 256 colours).
  552. RETURNS:  nothing.
  553. NOTE:  DI and SI are destroyed.
  554.  
  555.  
  556. CALLING FORMAT:  xorbox19(x,y,xsize,ysize,colour);
  557.           x = x coordinate of upper left corner (0 to 319).
  558.           y = y coordinate of upper left corner (0 to 199).
  559.           xsize = x length of box.
  560.           ysize = y length of box.
  561.           colour = colour for box.
  562. SIZE:  83 bytes.
  563. FUNCTION:  XORs a box (rectangle) with x and y coordinates and x and y size
  564.            on the screen with the desired colour in video mode 19 (320x200
  565.            256 colours).
  566. RETURNS:  nothing.
  567. NOTE:  DI and SI are destroyed.
  568.  
  569.  
  570. CALLING FORMAT:  xorpixel19(x,y,colour);
  571.           x = x coordinate to xor pixel (0 to 319).
  572.           y = y coordinate to xor pixel (0 to 199).
  573.           colour = colour to xor pixel.
  574. SIZE:  32 bytes.
  575. FUNCTION:  XORs a pixel on the screen at the desired point with the desired
  576.            colour in video mode 19 (320x200 in 256 colours).
  577. RETURNS:  nothing.
  578.  
  579.  
  580. /* end of STAKPROC.DOC */